﻿/*----------------------------------------------------------------
    // Copyright (C) 2009 江苏华招网
    // 版权所有。 
    // 作者：马毅
    //
    // 文件名：ChildUserAdd.cs
    // 文件功能描述：企业添加子用户
    // 创建标识：马毅2009-05-12
    //
    // 修改标识： 
    // 修改描述： 
    //
    // 修改标识： 
    // 修改描述： 
    //
    // 审核人： 
    // 审核时间： 
    // 审核说明： 
 //----------------------------------------------------------------*/
using System;
using System.Collections.Generic;

using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using HZ.DrugTrade.Web;
using HZ.DrugTrade.Model;

using HZ.DrugTrade.IBLL;
using HZ.DrugTrade.BLLFactory;
using HZ.DrugTrade.Model.Enum;
using System.Text.RegularExpressions;
namespace HZ.DrugTrade.Web.Enterprise.SystemManage
{
    public partial class ChildUserAdd : BasePage
    {
        public ChildUserAdd()
        {
            this.ModuleNo = Module.子用户管理.ToString();
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                txtChildUserPwd.Text = Constants.USER_DEFAULT_PWS;
                this.lblPrefix.Text = CurrentAccount.GetUser().UserID;
            }
        }


        /// <summary>
        /// 添加子用户并设置子用户的权限
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnAdd_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                //通过session获取子用户所属机构和角色
                User sessionUser = CurrentAccount.GetUser();

                Org org = sessionUser.Org;
                Role role = sessionUser.UserRole;

                //检查用户ID规则
                if (RegexValid(txtChildUserId.Text.Trim(), "^[SJPZsjpz]{1}[0-9]{4}$"))
                {

                    HZ.Web.WebUtil.Alert("子用户ID不符合规则，不能类似X0001！", this);
                    return;
                }

                //获取子用户信息
                User user = new User();
                user.UserID = this.lblPrefix.Text.ToUpper() + "_" + txtChildUserId.Text.Trim().ToUpper();
                user.UserName = txtChildUserName.Text.Trim();
                user.UserPassword = txtChildUserPwd.Text.Trim();
                user.IsUserAdmin = false;
                user.IsOnline = false;
                user.IsUsing = true;
                user.IsAdmin = false;
                user.UserRole = role;
                user.Org = org;



                //判定添加的操作情况
                IBLL_User iu = Factory.BLL_User();
                string flag = iu.AddUser_OperatingRule(user, null).ToString();

                switch (flag)
                {
                    case "2":
                        PageError("此用户已经存在！", Request.RawUrl);
                        break;
                    case "1":
                        string strMessage = "添加成功！";
                        strMessage += "\n登录名：" + this.lblPrefix.Text + "_" + txtChildUserId.Text.Trim();
                        strMessage += "\n默认密码：" + Constants.USER_DEFAULT_PWS;
                        PageInfo(strMessage, this.ReturnUrl);
                        break;
                    case "0":
                        PageError("添加失败！", this.ReturnUrl);
                        break;
                    default:
                        break;
                }
            }
        }

        /// <summary>
        /// 匹配正则表单式
        /// </summary>
        /// <param name="input"></param>
        /// <param name="pattern"></param>
        /// <returns></returns>
        private bool RegexValid(string input, string pattern)
        {
            Regex regex = new Regex(pattern);
            if (input != null)
            {
                return regex.IsMatch(input);
            }
            else
            {
                return false;
            }
        }
    }
}
